package com.funong.matrix.biz.base.dao;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.funong.matrix.biz.base.entity.SysRoleEntity;
import com.funong.matrix.biz.base.mapper.SysRoleMapper;
import com.funong.matrix.core.base.Dao;
import com.funong.matrix.core.base.FunongBaseDao;
import com.funong.matrix.core.base.FunongBaseEntity;
import com.funong.matrix.core.enums.IsDeletedEnum;
import org.aspectj.lang.annotation.Aspect;

import java.util.List;

@Dao
@Aspect
public class SysRoleDao extends FunongBaseDao<SysRoleMapper, SysRoleEntity> {

    public IPage<SysRoleEntity> queryRoleList(Page<SysRoleEntity> page, SysRoleEntity sysRoleEntity) {
        return page(page, Wrappers.<SysRoleEntity>lambdaQuery()
                .like(StringUtils.isNotEmpty(sysRoleEntity.getCode()), SysRoleEntity::getCode, sysRoleEntity.getCode())
                .like(StringUtils.isNotEmpty(sysRoleEntity.getName()), SysRoleEntity::getName, sysRoleEntity.getName())
                .eq(StringUtils.isNotEmpty(sysRoleEntity.getQueryStatus()), SysRoleEntity::getStatus, sysRoleEntity.getQueryStatus())
                .eq(SysRoleEntity::getSystemId, sysRoleEntity.getSystemId())
                .eq(SysRoleEntity::getIsDeleted, IsDeletedEnum.NOT_DELETED.getValue())
                .orderByAsc(SysRoleEntity::getOrderNum)
                .orderByDesc(FunongBaseEntity::getCreatedAt)
        );
    }

    public List<SysRoleEntity> queryByCode(String code) {
        return list(Wrappers.<SysRoleEntity>lambdaQuery()
                .eq(SysRoleEntity::getCode, code)
                .eq(SysRoleEntity::getIsDeleted, IsDeletedEnum.NOT_DELETED.getValue())
        );

    }
}





